package com.rop.model.base;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

@Data
public class BaseEntity implements Serializable {

    /**
     * 主键id
     */
    // IdType.AUTO ===> 主键自动增长，如果注释掉此注解，默认使用雪花算法生成id进行insert
    @TableId(type = IdType.AUTO)
    @ApiModelProperty("主键id")
    private String id;

    /**
     * 创建时间
     */
//    @DateTimeFormat(style = "yyyy-MM-dd HH:mm:ss")
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("create_time")
    @ApiModelProperty("创建时间")
    private Date createTime;

    /**
     * 修改时间
     */
//    @DateTimeFormat(style = "yyyy-MM-dd HH:mm:ss")
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("update_time")
    @ApiModelProperty("修改时间")
    private Date updateTime;

    /**
     * 是否删除
     */
    // 逻辑删除 默认效果 0 没有删除 1 已经删除 ，此注解开启后，可实现逻辑删除
    @TableLogic
    @TableField("is_deleted")
    @ApiModelProperty("是否删除")
    private Integer isDeleted;


    @TableField(exist = false)
    @ApiModelProperty("参数")
    private Map<String,Object> param = new HashMap<>();
}
